
-------- TML Message #68 --------

Subject: PBEM Traveller -- Chosen Subsector
From: jamesp
Date: 21 Sep 87 18:20:26 PDT (Mon)
Archive-Message-Number: 68



Okay, players! Here's your chance to write up a character as per my
previous posting.  Sorry I took so long; I've been rather busy at work.
Listeners/Traveller novices: as always, feel free to post any questions
to the list.

To summarize:

	You are to come up with a one-page character description.
	Remember that this character is still only 18 years old (or 22
	years old if you want to use High Gaurd college rules).

	You are to tell me basic physical, emotional, mental, and
	societal characteristics of the character.  Where was she/he
	born, what is her/his home world and why is that choice
	appropriate to the character (see subsector listing below)? what
	was her/his upbringing was like, what is her/his personality
	like, any outstanding traits, etc.

	What does the character aspire to become as a profession
	(merchant, diplomat, smuggler, gunnery manufacturer, alien
	outreach consutant, astronomer, hunting guide, etc.)? Where do
	they plan to get their skills in the future (Navy, scouts,
	merchants, diplomats, hunters, whatever)?

	Remember, I expect about a page.  More is fine, I really like
	detail and imagination, but remember that I can only pick one or
	two of you.  I promise to be as 'fair' as possible, but I gotta
	pick rather arbitrarily what interests me most.

Okay, the subsector's attached below, preformatted for the ``standard''
66-line printer.  Remember I said that I don't follow the official GDW
Imperium campaign, but be aware that I plagiarize very heavily from it
:-).  I've been influenced by lots of science fiction, and have most
recently been reading Keith Laumer and Poul Anderson, so you know where
my recent influences lie.

Very Brief Background history:

The "Imperium" I have postulated is called the "Terran Imperium".  It is
a feudal society that took up 20 some years after the fall of the Great
Republic.  The year your character begins play (after we figure out UPP
and skillify them) will be TI 1105.  Chosen Subsector is on the Imperial
Frontier.

Have fun designing! I'll give you until Monday 28 September to send me
your one-page description, or until I get a character from everyone on
my player list, whichever comes first.  Oh and by the way, if you want
to contribute to a system's history in Chosen subsector to complement
your character or induce campaign suggestions in your referee, feel free
to and I'll see if I can add it in to individual worlds' histories.

 _	___
| |    / _ \   James T. Perkins, jamesp@dadla.TEK.COM, 629-1149
| |__ | |_| |  Tektronix Logic Analyzers, DAS System Software, Display
|____||_| |_|  MS 92-725, PO Box 4600, Beaverton OR 97075

Killed processes never die... They just go to the big Bit Bicket in the sky.

- -------- cut here ------- or here ---------
=== SUBSECTOR DATA SHEET ============================== 029-1104 === Page 1 ===

Chosen Subsector contains a variety of inhabited worlds, half of them worlds of
the Terran Imperium, most of the remainder independent buffer worlds between the
Imperium and the Menion Allegiance at the lower border of the subsector.  This
is an area of vigorous trading activity, occasional border scuffles between the
TI and the MA, and much quelling of malcontents and shady commerce.  The Menions
have always been eager to buy Imperial technology.

This subsector served as the gateway of the Imperial rescue of the Menion
Allegiance, a brief history presented below.

First known contact between the TI and the MA was somewhere in 989, when the TI
sent survey ships to the MA to scout the entire subsector.  What was found was a
collection of worlds harried by ruthless human pirates and profit-seekers with
advanced Imperial technology, barely defended by the (TL 11) young spacefaring
navy of the Menion Allegiance.  The Menions had had space travel for a bare 150
years, and had been under siege the last 30.

Profit seekers scalped the Menions for cash and often stold the goods back.
Pirates preyed on Menion commerce.  Menions were kidnapped and sold by slave
traders throughout the backward, independent worlds in Chosen Subsector and
other Subsectors in Menion Sector.

The Imperial Survey return resulted in a muster of Imperial forces in 997 from
neighboring Johnstone Sector.  These forces consisted of the Navy, Army and Navy
Corps of Engineers, Counter-Insurgent forces, Communications networks, Imperial
administrators, intrasystem defense forces and official registered merchant
fleets.  These forces came to the aid of the Menion Allegiance, driving out the
profiteers and pirates, and in the process bending the corrupt back of the
roguish world governments militarily, technologically, and economically, until
they snapped. The Imperium was able to install Imperial loyalists governors in
most Independent world governments by 1040.

The massive outflow of Imperial cash nearly bankrupted the treasury of Menion
Sector, but heavy taxation of the extremely lucrative merchant mecca that formed
has resulted in a inflationary but generally recovering economy in the Sector
the last 15 years, another force which is strengthening the Imperial and local
govenerments and economically stablizing the region.  The only really
influential criminal efforts left in this subsector is smuggling, which leads to
a very punitive penalty for convicts.

Despite the helpfulness of the Imperium, malcontents in the Menion Allegiance
have continued to beat heavy dislike for humans into citizens of less-advanced
Menion worlds, and it has been only 40 years since human slavery was abolished
in the Menion Allegiance.  An officially-unrecognized concordance of rogue
Menion worlds not bordering on Imperial territory, Menios Akas, are still
believed to hold humans in a state of virtual slavery.

The frontier nature and former level of criminal and exploited population in
this region have resulted in an overall negative human attitude toward the
Menion race.  Only in the more advanced Imperial worlds has the tide been
reversed, Menions welcomed as citizens and coworkers, free of segregation.  In
the past ten years Menions have served admirably in the Imperial Navy, and a
similar opening of the Menion Allegiance to full human citizenship is the prime
focus of the Sector's Imperial Diplomacy Corps.








=== Chosen Subsector ======================================== Menion Sector ===

=== SUBSECTOR DATA SHEET ============================== 029-1104 === Page 2 ===

Coor ---System Name---- ---UPP--- B --Trade Codes-- Al Z GP
0102 Gruenwald          B775400-9 N TN NI           TI   GP
0106 Mel Dawn           B575232-8   NI              IN A GP
0107 Jackson            C000788-A   NA AS           IN A  P
0108 Eldritch           B1607CF-B   DE              IN A GP
0201 Bluesea            E877445-7   TN NI           TI   GP
0203 Astel Tine         B655AAC-E N TP              TI   G
0207 Polender           C9D4210-6 S NI              IN   G
0208 Relsea             C667313-8 S TP NI           IN   G
0209 Smoke              A000869-B S NA AS           IN   G
0301 Gemoric            C100246-C   NI VA           TI   G
0303 Parchskif          D260A77-7   DE              TI   G
0304 Arazon             A43457B-C   NI              TI   G
0308 AS 289             D000A97-8 S NA IN AS        IN
0404 Far Moon           C667547-9   TP AG NI        TI   G
0405 Blue Star          A220659-F N NI PO DE        TI   G
0407 Marn Ali           A430421-C   NI PO DE        IN   G
0410 Mel Fah            C200300-7   NI VA           MA A GP
0503 Mitor              C1308CB-B   NA PO DE        TI   G
0504 Helvetia           B200236-C   NI VA           TI   GP
0505 Aperhela           C210234-9   NI              TI   G
0506 Joiness            E446562-3   AG NI           IN   G
0601 Galan's Belt       B000486-E A NI AS           TI   GP
0602 Grenadine          D9A77A9-7                   TI   G
0609 Lilan              A877665-C   TN AG NI        MA   G
0703 Fine               A795253-9 N TP NI           TI   GP
0705 Barnix             C785353-9 S TP NI           IN   G
0710 Salishan           D629431-7   NI              MA   G
0801 Oceanscape         B588300-B N NI              TI   G
0802 Dusk               D240788-6 S PO DE           TI   G
0803 Dreamis            B551611-5   NI PO           TI   G
0804 Joline             D120ABB-C S NA IN PO DE     TI   G

System alignments (Al column) are as follows:
        IN - Independent
        MA - Menion Allegiance
        TI - Terran Imperium

























=== Chosen Subsector ======================================== Menion Sector ===

=== SUBSECTOR DATA SHEET ============================== 029-1104 === Page 3 ===
            ______            ______            ______            ______
           / 0201 \          /      \          / 0601 \          / 0801 \
          /    E 7 \        /        \        /  * B E \        /  * B B \
   ______/    @ .   \______/          \______/  ^ % .   \______/    @ .   \
  /      \ Blue Sea / 0301 \          /      \ Galan's  /      \Oceanscape/
 /        \        /    C C \        /        \  Belt  /        \        /
/          \______/    O .   \______/          \______/          \______/
\          /      \ Gemoric  /      \          / 0602 \          / 0802 \
 \        /        \        /        \        /    D 7 \        /    D 6 \
  \______/          \______/          \______/    @ .   \______/  ^ O .   \
  / 0102 \          /      \          /      \Grenadine /      \   Dusk   /
 /  * B 9 \        /        \        /        \        /        \        /
/    @ .   \______/          \______/          \______/          \______/
\Gruenwald / 0203 \          /      \          /      \          / 0803 \
 \        /  * B E \        /        \        /        \        /    B 5 \
  \______/    @ .   \______/          \______/          \______/    @ .   \
  /      \Astel Tine/ 0303 \          / 0503 \          / 0703 \ Dreamis  /
 /        \        /    D 7 \        /    C B \        /  * A 9 \        /
/          \______/    O .   \______/    O .   \______/    @ .   \______/
\          /      \Parchskif / 0404 \  Mitor   /      \  Fine    / 0804 \
 \        /        \        /    C 9 \        /        \        /    D C \
  \______/          \______/    @ .   \______/          \______/  ^ O .   \
  /      \          / 0304 \ Far Moon / 0504 \          /      \  Joline  /
 /        \        /    A C \        /    B C \        /        \        /
/          \______/    @ .   \______/    O .   \______/          \______/
\          /      \  Arazon  / 0405 \ Helvetia /      \          /      \
 \        /        \        /  * A F \        /        \        /        \
  \______/          \______/    O .   \______/          \______/          \
  /      \          /      \Blue Star / 0505 \          / 0705 \          /
 /        \        /        \        /    C 9 \        /    C 9 \        /
/          \______/          \______/    O .   \______/  ^ @ .   \______/
\          /      \          /      \ Aperhela /      \  Barnix  /      \
 \        /        \        /        \        /        \        /        \
  \______/          \______/          \______/          \______/          \
  / 0106 \          /      \          / 0506 \          /      \          /
 /    B 8 \        /        \        /    E 3 \        /        \        /
/    @ .   \______/          \______/    @ .   \______/          \______/
\ Mel Dawn / 0207 \          / 0407 \ Joiness  /      \          /      \
 \        /    C 6 \        /    A C \        /        \        /        \
  \Amber_/  ^ @ .   \______/    O .   \______/          \______/          \
  / 0107 \ Polender /      \ Marn Ali /      \          /      \          /
 /    C A \        /        \        /        \        /        \        /
/    %     \______/          \______/          \______/          \______/
\ Jackson  / 0208 \          /      \          /      \          /      \
 \        /    C 8 \        /        \        /        \        /        \
  \Amber_/  ^ @ .   \______/          \______/          \______/          \
  / 0108 \  Relsea  / 0308 \          /      \          /      \          /
 /    B B \        /    D 8 \        /        \        /        \        /
/    O .   \______/  ^ %     \______/          \______/          \______/
\ Eldritch / 0209 \  AS 289  /      \          / 0609 \          /      \
 \        /    A B \        /        \        /    A C \        /        \
  \Amber_/  ^ % .   \______/          \______/    @ .   \______/          \
  /      \  Smoke   /      \          /      \  Lilan   /      \          /
 /        \        /        \        /        \        /        \        /
/          \______/          \______/          \______/          \______/
\          /      \          / 0410 \          /      \          /      \
 \        /        \        /    C 7 \        /        \        /        \
  \______/          \______/    O .   \______/          \______/          \
  /      \          /      \ Mel Fah  /      \          / 0710 \          /
 /        \        /        \        /        \        /    D 7 \        /
/          \______/          \Amber_/          \______/    O .   \______/
\          /      \          /      \          /      \ Salishan /
 \        /        \        /        \        /        \        /
  \______/          \______/          \______/          \______/
=== Chosen Subsector ======================================== Menion Sector ===

-------- TML Message #69 --------

Subject: mapsub - a program for generating a subsector hex map
From: jamesp
Date: 22 Sep 87 14:29:50 PDT (Tue)
Archive-Message-Number: 69



Hello everyone!

Here's a program which takes a subsector as input and produces a subsector map
as output.  It uses the same line-by-line system file as gensec produces
(except gensec produces an entire sector, whereas mapsub only maps a single
sector).

If you use this program please tell me.  I want to know if it is worth it
posting these things to the list.

 _	___
| |    / _ \   James T. Perkins, jamesp@dadla.TEK.COM, 629-1149
| |__ | |_| |  Tektronix Logic Analyzers, DAS System Software, Display
|____||_| |_|  MS 92-725, PO Box 4600, Beaverton OR 97075

Killed processes never die... They just go to the big Bit Bicket in the sky.

P.S. for you VMS types out there, it should be easy to use a text editor to
seperate out the two files.  If you have trouble with the shar archive
please contact me and I'll resend the files individually for you.

# This is a shell archive.  Remove anything before this line, then
# unpack it by saving it in a file and typing "sh file".  (Files
# unpacked will be owned by you and have default permissions.)
#
# This archive contains:
# mapsub.c subhex

echo x - mapsub.c
cat > "mapsub.c" << '//E*O*F mapsub.c//'
/*
 * mapsub - produce a subsector hex-grid map from subsector data
 *
 * SYNOPSIS
 *   mapsub <Subsector.dat >Subsector.hex
 *
 * DESCRIPTION
 *   Mapsub processes the star system information on the standard input and
 *   produces a hex-grid map on the standard output.  The format expected is
 *   very precise, consisting of one formatted line for each system, each
 *   exactly 59 bytes followed by a newline.  Example:
 *
 *   "0102 Gruenwald          B775400-9 N TN NI           TI   GP"
 *
 *    XXYY System_Name_______ UPP______ B Trade_Codes___  Al Z GP
 *
 *   Where:
 *	XXYY is the system coordinates, in the range 0101-3240
 *	System_Name is the 18-character system name
 *	UPP is the Universal Planetary profile
 *	B is the base code: 'N' navy, 'S' scout, 'A' both
 *	Trade_Codes is up to fifteen characters worth of Trading codes,
 *	   from this list: TN (Terran-Norm), TP (Terran-Prime), AG
 *	   (Agricultural), NA (Non-AG), IN (Industrial), NI (Non-IN), RI
 *	   (Rich), PO (Poor), WA (Water world), DE (Desert World), VA
 *	   (Vacuum World), AS (Asteroid Belt), IC (Ice-capped), CA (Subsector
 *	   Capitol)
 *	   The only Trade_Code that does anything is CA, which causes
 *	   "Capitol" to be written into the system's hex.
 *	Al is the system alignment.  "IM" is the official alignment for the
 *	   Imperium.  I use "IN" for independent worlds.
 *	Z is the travel zone, either " " (Green), "A" (Amber), "R" (Red).
 *	G is the gas-giant-present flag, either " " (None), or "G" (exists).
 *	P is the planetoids-present flag, either " " (None), or "P" (exists).
 *
 *   The output is an array of empty and filled hexes, which look like this:
 *	   ______
 *	  / XXYY \	XXYY - System coordinates
 *	 /  * S T \	* - Navy base, S - Starport class, T - Tech level
 *	/  ^ O .   \	^ - Scout base, "O" "@" or "%" - Desert or Non-desert
 *	\  System  /        world or Asteroid belt, . - Gas giant
 *	 \  Name  /
 *        \Zone__/	Zone - blank for green or "amber" or "RED" or "Capitol"
 *
 * WARNING
 *    Mapsub assumes that the input is only one subsector's worth of worlds.
 *    if you give it a sector's worth of worlds (Example: "gensec | mapsub")
 *    it will print them all, overlapping many worlds!
 *
 *    Ergo, if you want to generate worlds automatically, use gensec to
 *    produce a sector file of systems, then glean all the worlds belonging
 *    to a particular sector out of that file and put it in a subsector file,
 *    then use mapsub on the new subsector file.
 *
 * TO COMPILE
 *    On BSD systems, use:	cc -O -s -o mapsub mapsub.c
 *    On SYSV systems, use:	cc -O -DSYSV -s -o mapsub mapsub.c
 *
 * FILES
 *    Needs a blank hex map template, defined by default to be "./subhex".
 *    Change the MAP_TEMPLATE parameter to change this file's location.
 *    
 * SEE ALSO
 *    gensec - the sector generator program (produces compatible format)
 *
 * AUTHOR
 *    James T. Perkins, jamesp@dadla.TEK.COM, tektronix!dadla!jamesp
 *
 * BUGS
 *    The code is somewhat messy, as it was hacked out on a whim.
 *    
 *    As stated above, one cannot simply use the output of gensec as input
 *    to mapsub -- the gensec output must be edited.
 */
/*

Copyright 1987 James T. Perkins

	This notice and any statement of authorship must be reproduced
	on all copies.  The author does not make any warranty expressed
	or implied, or assumes any liability or responsiblity for the
	use of this software.

	Any distributor of copies of this software shall grant the
	recipient permission for further redistribution as permitted
	by this notice.	 Any distributor must distribute this software
	without any fee or other monetary gains, unless expressed written
	permission is granted by the author.

	This software or its use shall not be: sold, rented, leased,
	traded, or otherwise marketed without the expressed written
	permission of the author.

	If the software is modified in a manner creating derivative
	copyrights, appropriate legends may be placed on derivative
	work in addition to that set forth above.

	Permission is hereby granted to copy, reproduce, redistribute or
	otherwise use this software as long as the conditions above
	are met.

	All rights not granted by this notice are reserved.

*/

#define MAP_TEMPLATE "./subhex"	/* empty hex grid file */

#include <stdio.h>
#include <strings.h>

#define mapxy(x, y, dx, dy) \
	&map[(((y) - 1) % 10) * 6 + ((2 * ((x) / 2) == (x)) ? 1 : 4) + (dy)]\
	[(((x) - 1) % 8) * 9 + 1 + (dx)]

/*
 * Define SYSV if you are compiling on any machine that uses the string
 * library functions strchr() and strrchr().  Do not define SYSV for BSD-like
 * machines, which use index() and rindex().
 */

#ifdef SYSV
#define index strchr
#endif

char map[70][81];	/* in-memory copy of map that we operate on */

main(ac, av, envp)
int ac;
char *av[], *envp[];
{
	char *center_name();
	char system[81], name[19], upp[10], trade[16], align[3];
	char base, zone, gas, belt;
	char *s;
	int n_lines = 0, x, y, i;
	FILE *fp;

	/*
	 * Read hex map template into memory
	 */

	if ((fp = fopen(MAP_TEMPLATE, "r")) == NULL)
	{
		fprintf(stderr, "%s: cannot open %s.\n", av[0], MAP_TEMPLATE);
		exit(1);
	}
	while (!feof(fp))
	{
		fgets(map[n_lines++], 81, fp);
	}
	fclose(fp);

	/*
	 * Start with empty, null-terminated strings
	 */

	bzero(name, sizeof(name));
	bzero(upp, sizeof(upp));
	bzero(trade, sizeof(trade));
	bzero(align, sizeof(align));

	/*
	 * Read in each system and place it on the map
	 */

	while (!feof(stdin))
	{
		fgets(system, sizeof(system), stdin);
		sscanf(system,
			"%2d%2d%*c%18c%*c%9c%*c%c%*c%15c%*c%2c%*c%c%*c%c%c\n",
			&x, &y, name, upp, &base, trade, align,
			&zone, &gas, &belt);
		rem_trail_sp(name);
		rem_trail_sp(trade);

		/*
		 * write hex:
		 *	______
		 *    &/ XXYY \		& is where the x, y offset is
		 *    /  * S T \
		 *   /  ^ @ .   \
		 *   \  System  /
		 *    \  Name  /
		 *     \______/
		 */

		overwrite(mapxy(x, y, 3, 0), system, 4);
		overwrite(mapxy(x, y, 3, 1), ((base == 'N' || base == 'A') ?
			"*" : " "), 1);
		overwrite(mapxy(x, y, 5, 1), upp, 1);
		overwrite(mapxy(x, y, 7, 1), &upp[8], 1);
		overwrite(mapxy(x, y, 2, 2), ((base == 'S' || base == 'A') ?
			"^" : " "), 1);
		overwrite(mapxy(x, y, 4, 2), ((upp[1] == '0') ? "%" :
			((upp[3] == '0') ? "O" : "@")), 1);
		overwrite(mapxy(x, y, 6, 2), ((gas == 'G') ? "." : " "), 1);

		s = center_name(name, x, y, 0, 3, 10);
		if (*s)
		{
			(void)center_name(s + 1, x, y, 1, 4, 8);
		}

		switch (zone)
		{
		case 'A': /* Amber */
			overwrite(mapxy(x, y, 2, 5), "amber", 5);
			break;
		case 'R': /* Red */
			overwrite(mapxy(x, y, 2, 5), "RED", 3);
			break;
		}

		s = trade;
		while (s = index(s, 'C'))
		{
			if (strncmp(s, "CA", 2) == NULL)
			{
				overwrite(mapxy(x, y, 2, 5), "Capitol", 7);
				break;
			}
			else
			{
				s++;
			}
		}
	}

	/*
	 * Write out finished map
	 */

	for (i = 0; i < n_lines; i++)
	{
		printf("%s", map[i]);
	}

	exit(0);
}

/*
 * Remove all trailing spaces from the given null-terminated string
 */

rem_trail_sp(s)
char *s;
{
	int i = strlen(s) - 1;

	while (i >= 0 && s[i] == ' ')
	{
		s[i--] = '\0';
	}
}

/*
 * Overwrite memory, beginning at the given address, with the first n
 * characters of the given string.
 */

overwrite(p, s, n)
char *p, *s;
int n;
{
	while (n-- > 0)
	{
		*p++ = *s++;
	}
}

/*
 * Take the given name and try to place as many words as will fit in given
 * width into the map at x, y, dx, dy.  Also center each line of output in
 * the width.  Unfortunately, a word may be too long to fit, in which case
 * place it anyway, overlapping.
 *
 * Returns 0 if it was able to place the entire name, or a pointer to the
 * space just following the last word placed.  Nasty kludges, beware,
 */

char *
center_name(name, x, y, dx, dy, width)
char *name;
int x, y, dx, dy, width;
{
	char *end, *cur, *retval, *oldcur;
	int offset;

	cur = index(name, ' ');
	if (cur == NULL)
	{
		end = name + strlen(name) - 1;
	}
	else
	{
		end = cur - 1;
		oldcur = NULL;
		while (cur && cur - name <= width && cur != oldcur)
		{
			end = cur - 1;
			oldcur = cur;
			cur = index(cur + 1, ' ');
			if (cur == NULL)
			{
				cur = name + strlen(name);
			}
		}
	}
	offset = (width - (end - name + 1)) / 2;
	dx = dx + offset;
	overwrite(mapxy(x, y, dx, dy), name, end - name + 1);

	if (index(end, ' '))
	{
		return end + 1;
	}
	else
	{
		return NULL;
	}
}
//E*O*F mapsub.c//

echo x - subhex
cat > "subhex" << '//E*O*F subhex//'
            ______            ______            ______            ______
           /      \          /      \          /      \          /      \
          /        \        /        \        /        \        /        \
   ______/          \______/          \______/          \______/          \
  /      \          /      \          /      \          /      \          /
 /        \        /        \        /        \        /        \        /
/          \______/          \______/          \______/          \______/
\          /      \          /      \          /      \          /      \
 \        /        \        /        \        /        \        /        \
  \______/          \______/          \______/          \______/          \
  /      \          /      \          /      \          /      \          /
 /        \        /        \        /        \        /        \        /
/          \______/          \______/          \______/          \______/
\          /      \          /      \          /      \          /      \
 \        /        \        /        \        /        \        /        \
  \______/          \______/          \______/          \______/          \
  /      \          /      \          /      \          /      \          /
 /        \        /        \        /        \        /        \        /
/          \______/          \______/          \______/          \______/
\          /      \          /      \          /      \          /      \
 \        /        \        /        \        /        \        /        \
  \______/          \______/          \______/          \______/          \
  /      \          /      \          /      \          /      \          /
 /        \        /        \        /        \        /        \        /
/          \______/          \______/          \______/          \______/
\          /      \          /      \          /      \          /      \
 \        /        \        /        \        /        \        /        \
  \______/          \______/          \______/          \______/          \
  /      \          /      \          /      \          /      \          /
 /        \        /        \        /        \        /        \        /
/          \______/          \______/          \______/          \______/
\          /      \          /      \          /      \          /      \
 \        /        \        /        \        /        \        /        \
  \______/          \______/          \______/          \______/          \
  /      \          /      \          /      \          /      \          /
 /        \        /        \        /        \        /        \        /
/          \______/          \______/          \______/          \______/
\          /      \          /      \          /      \          /      \
 \        /        \        /        \        /        \        /        \
  \______/          \______/          \______/          \______/          \
  /      \          /      \          /      \          /      \          /
 /        \        /        \        /        \        /        \        /
/          \______/          \______/          \______/          \______/
\          /      \          /      \          /      \          /      \
 \        /        \        /        \        /        \        /        \
  \______/          \______/          \______/          \______/          \
  /      \          /      \          /      \          /      \          /
 /        \        /        \        /        \        /        \        /
/          \______/          \______/          \______/          \______/
\          /      \          /      \          /      \          /      \
 \        /        \        /        \        /        \        /        \
  \______/          \______/          \______/          \______/          \
  /      \          /      \          /      \          /      \          /
 /        \        /        \        /        \        /        \        /
/          \______/          \______/          \______/          \______/
\          /      \          /      \          /      \          /      \
 \        /        \        /        \        /        \        /        \
  \______/          \______/          \______/          \______/          \
  /      \          /      \          /      \          /      \          /
 /        \        /        \        /        \        /        \        /
/          \______/          \______/          \______/          \______/
\          /      \          /      \          /      \          /
 \        /        \        /        \        /        \        /
  \______/          \______/          \______/          \______/
//E*O*F subhex//

echo Possible errors detected by \'wc\' [hopefully none]:
temp=/tmp/shar$$
trap "rm -f $temp; exit" 0 1 2 3 15
cat > $temp <<\!!!
     321    1462    8381 mapsub.c
      64     482    4771 subhex
     385    1944   13152 total
!!!
wc  mapsub.c subhex | sed 's=[^ ]*/==' | diff -b $temp -
exit 0

-------- TML Message #70 --------

Subject: Re: mapsub - a program for generating a subsector hex map
From: jamesp
Date: 22 Sep 87 15:02:49 PDT (Tue)
Archive-Message-Number: 70



> Subject: mapsub - a program for generating a subsector hex map
> From: jamesp
> Approved: by traveller@dadla Tue Sep 22 14:28:50 PDT 1987

> (except gensec produces an entire sector, whereas mapsub only maps a single
> sector).
  ^^^^^^

should be SUBsector.

 _	___
| |    / _ \   James T. Perkins, jamesp@dadla.TEK.COM, 629-1149
| |__ | |_| |  Tektronix Logic Analyzers, DAS System Software, Display
|____||_| |_|  MS 92-725, PO Box 4600, Beaverton OR 97075

Killed processes never die... They just go to the big Bit Bicket in the sky.

-------- TML Message #71 --------

From: gatech!linus!nes!wdr@tektronix ("William D. Ricker")
Subject: mapsec  && subsec.csh
Date: 23 Sep 87 14:11:52 PDT (Wed)
Archive-Message-Number: 71


James,

I like it.  I wrote myself the following little ditty to bust
the gensec output into subsectors, assuming that mapsub likes 8x10
sector, as best I can tell.  (Since the traveller I play is even more
non-standard than yours, I don't know how big they are supposed to be!)

	BILL

#
# subsec.csh [-v] x y [filename...]
#
# -v option causes it to print the patterns it would use and exit.
#
# any extra args are used as filenames by EGREP instead of the standard
# input.
#
# legal values of x and y are 1 2 3 and 4 .
#
# picks only those lines in GENSEC format which are within the (x,y)th
# subsector, where 0101 is in the (1,1)th and 3240 is in the (4,4)th,
# with 0840 in the (1,4)th and 3210 in the (4,1)th.
#
# designed for use as:
#	  : sh shell script
#	  gensec > sector.$n 
#	  for x in 1 2 3 4 ; do 
#	  for y in 1 2 3 4 ; do 
#		subsec.csh $x $y sector.$n > map.$n.$x$y
#		done  ; done
#
# egrep patterns for 01-08, 09-16, 17-24, 25-32.
set x=("0[1-8]" "09|1[0-6]" "1[7-9]|2[0-4]" "2[5-9]|3[0-2]")
#
# egrep patterns for 01-10, 11-20, 21-30, 31-40.
set y=("0[1-9]|10" "1[1-9]|20" "2[1-9]|30" "3[1-9]|40")
#
if ($1 == "-v" ) then
	echo "$x[$2] $y[$3]"
else
	egrep "^($x[$1])($y[$2])" $argv[3-]
endif

- --------------------
Did I send you my AWK program to translate GENSEC format into moderately
readable pseudoEnglish?



-------- TML Message #72 --------

Subject: Re: mapsub B*U*G**
From: jamesp
Date: 23 Sep 87 14:27:28 PDT (Wed)
Archive-Message-Number: 72



[mapsub has a bug (sorry folks)... the line that looks like "if (*s)" should
be "if (s)".  Better fix your copies -- James]

Bill Ricker writes:
> Looks real cute once I got it to stop dumping core.
>
> 		if (*s)
> It runs fine if I change this to:
> 		if (s != NULL && *s)
>
> Moral:  For transportable code,
> NEVER TEST THE POINTEE WITHOUT CHECKING FOR NULL POINTER FIRST!!!!

Oh crud! #%$@!*!@@^#$^@!

When I wrote it I tried to be verry, verrry careful to not dereference any
null pointers.  That line slipped out and really should have been:

	if (s)

The splat was left from earlier when I wasn't attempting to write portable
code :-(

James "I promise never again to assume that the whole world is a VAX" Perkins

 _	___
| |    / _ \   James T. Perkins, jamesp@dadla.TEK.COM, 629-1149
| |__ | |_| |  Tektronix Logic Analyzers, DAS System Software, Display
|____||_| |_|  MS 92-725, PO Box 4600, Beaverton OR 97075

Killed processes never die... They just go to the big Bit Bicket in the sky.

-------- TML Message #73 --------

Subject: PBEM Traveller
From: jamesp
Date: 19 Oct 87 21:29:06 PDT (Mon)
Archive-Message-Number: 73



[A copy of this is going to the Traveller list... might as well use it for
*something*...]

My deepest apologies for running off and immersing myself in work to the
total ignorance of the Traveller Play-by-mail characters, USENET, and
personal mail.  My intent was not to totally ignore everyone, but that's
what unfortunately happened.

I received four characters, one each from Jon Davis, Al Muller, Stuart
Stirling, and Glenn Fernandez.  All of them are promising characters,
and if I had enough time I would enjoy refereeing all of them.

So against my better judgement I'm going to try to referee all of you.

Here's the roster of characters:

	Melisa Johnsway, bright daughter of a Scout KIA while on active
	duty, has reluctantly been completing a languages degree on
	Astel Tine before obsessively pursuing the cause of her father's
	untimely demise (Al Muller).

	Neifrii Yakida, illegitimate son of a autocratic noble, has no
	inheritance but more than enough familial derision, and seeks
	to impress his family and make an honorable life for himself
	(Jon Davis).

	Leopold Pelzig, loner streetwise son of a poor stevedore, is
	financially trapped on the stiflingly dictatatorial and
	overly-populous world of Astel Tine.  He sets off to join the
	crew of a Free Trader stopped at Astel Tine's busy starport
	(Stuart Stirling).

	Paul Crinton, unrealistic 18-year old from the backwater world
	of Far Moon, enlists in the regular Navy with a dream to become
	a Navy fighter pilot (Glenn Fernandez).

Unfortunately this means I have to develop four story lines at once, so
they'll all unfold a little slowly at times.  I also hope that a pair
or two of characters may eventually bump into each other and form a
team.

In the mean time, I am going to rev up my brain for as much creativity
as I can muster, and dive into each storyline (right now it's braindead
from fighting a UNIX V7 imbedded system).  Each of you can expect a
first-round planning letter in your mail spool within a week.

 _	___
| |    / _ \   James T. Perkins, jamesp@dadla.TEK.COM, 629-1149
| |__ | |_| |  Tektronix Logic Analyzers, DAS System Software, Display
|____||_| |_|  MS 92-725, PO Box 4600, Beaverton OR 97075

Killed processes never die... They just go to the big Bit Bicket in the sky.

-------- TML Message #74 --------

Subject: Re: PBEM Traveller
From: jamesp
Date: 20 Oct 87 12:16:21 PDT (Tue)
Archive-Message-Number: 74



[From one of the list members]

> What was the final word on whether the rest of us get to watch?
> I assume it was "yes"? (hope so!)

Definitely.  All of the player's responses were positive on listeners.
Here's the list of requesting listeners that I am now aware of:

	"Alvin M. Chan" <ugachan@cs.buffalo.edu>
	"D. J. McCarthy" <mccarthy%uxe.cso.uiuc.edu@uxc.cso.uiuc.edu>
	Bill Oliver <oliver@cs.unc.edu>
	Bob Simpson <traveller-People@plus5.com>
	DAVIS JONATHAN E <DAVISJE@ge-crd.arpa>
	Glenn Fernandez <glenn@uhccux.uhcc.hawaii.edu>
	James T. Perkins <jamesp>
	Jason May <jmay@alexander.bbn.com>
	Mark Carroll <carroll@aim.rutgers.edu>
	Randy Groves <randy@boeing.com>
	Tim Thomas <tim@gondor.psu.edu>
	bart@reed (Bart Massey)
	bobl@tessi (Bob Lewis)
	decvax!cg-atla!hunt@tektronix (Walter Hunt X7031)
	gatech!emory!silver@tektronix (Stuart Stirling)
	hp-pcd!hpldola!esk@tektronix
	michaels@tekgvs.TEK.COM (Michael D. Smith)
	rpg@cs.brown.edu
	ucbvax.Berkeley.EDU!decwrl!vino.dec.com!kstevens@ucbcad (I do not think about what I do not think about.)
	ucbvax.Berkeley.EDU!decwrl!yoda.dec.com!baranski@ucbcad  (I thought you liked surprises?!?)

This is a list of 20 people, and would require me to set up and
administer a second mailing list, which would be a subset of the current
Traveller Mailing List (TML).  Since TML consists of only 76 people and
doesn't seem to have a whole lot of traffic (i.e. the only thing it's
been used for in the past month is this PBEM stuff), for now I'm going
to treat TML *as* the listener's list.

Naturally this means there are 56 people out there who aren't
particularly interested in the games, but at least they would be getting
some traveller-related traffic instead of no traffic at all, and the
list could be used for SOMEthing then :-).  After all, it isn't too hard
to delete those messages one doesn't care about.

If anyone out there has a better suggestion, I'd be happy to hear about
it.  It wouldn't be too terribly hard to set up a second mailing list
for listeners only here (it would only take me a couple hours), but
being the lazy cad I am I'm not going to worry about it unless someone
requests it.

To the four players: If you are on a UNIX system and are using AT&T or
Berkeley mail, please set up an alias as follows in your .mailrc, so
communication to me gets also sent to the mailing list:

	alias referee jamesp@dadla.tek.com traveller@dadla.tek.com

If you are on a UNIX system and using MH, please set up an alias in you
.mh_aliases, as follows:

	referee: jamesp@dadla.tek.com, traveller@dadla.tek.com

If you're using MUSH or Elm or VMS mail or something else I'm totally
lost and can't help you -- just try to see that corresponence sent to
the referee also gets to the list for now.

The above aliases allow you to send mail to me ala "mail referee",
providing a helpful and consistent shorthand.  Naturally I'll still
treat mail to traveller-request@dadla as confidential.

(note: you may have to use a uucp or arpa address or something instead
of the internet-style user@host.subdomain.domain addressing -- use
whatever works)

Well, that's enough for this message... comments are welcome.

- ----------------------------------------------------------------------
James T. Perkins		Traveller Mailing List Administrator
Tektronix Logic Analyzers	"Load Auto/Evade, Beowulf!"
- ----------------------------------------------------------------------
UUCP:	  {decvax,gatech,hplabs,ihnp4}!tektronix!dadla!traveller-request
INTERNET: traveller-request@dadla.TEK.COM
CSNET:	  traveller-request%dadla.TEK.COM@csnet-relay.CSNET

-------- TML Message #75 --------

Subject: PBEM Traveller -- what will listeners hear?
From: jamesp
Date: 20 Oct 87 13:59:32 PDT (Tue)
Archive-Message-Number: 75



[ A player's question... ]

> Could you elaborate on what you plan to post to the mailing 
> list from the playing of the game?  Would you post all communication?

I would post just about all communication, since this is the path of
least resistance.  At some time it is likely that a player will want to
send something private.  Players need only mark it as private and it
will not be posted (but it is up to you to be careful that the mail
addresses sent to are correct; that is, you send only to me and not me
*and* TML).  It may be necessary for me to update the mailing list with
a one-line summary in these cases, which I will do at my best discretion
and probably at a much later time.

Again, if someone has a better idea, I'd like to hear it.

James

-------- TML Message #76 --------

Subject: World Detail -- Astel Tine
From: jamesp
Date: 02 Nov 87 16:18:16 PST (Mon)
Archive-Message-Number: 76



[This is detail for the ongoing PBM Traveller games -- James T. Perkins]

- ---- cut here ----






                          World Detail

  0203 Astel Tine         B655AAC-E N TP CA           TI   G


  SYSTEM PHYSICAL CHARACTERISTICS

  Gas Giants: Gas giant planet(s) are available for wilderness
  refueling.  Planetoid Belts: No planetoid belts in system.

  SYSTEM DEMOGRAPHICS

  Alignment: Terran Imperium.  Travel Zone: Green: No particu-
  lar danger or problem to travellers.

  STARPORT

  Classification: Good quality  starport  with  refined  fuel,
  overhaul,  shipyards  for non-starships.  Bases: Naval Base:
  Port facility for  the  support  and  maintenance  of  naval
  vessels.   Includes  administration sections, and some secu-
  rity personnel.  Trade Classifications: Terran-Prime.   Sub-
  sector Capital.

  WORLD PHYSICAL CHARACTERISTICS

  World  Size:  6,000  miles  (9,600km).   Atmosphere:   Thin.
  Hydrographics: 50% water.

  WORLD DEMOGRAPHICS

  Population: Tens of billions.  Government: Charismatic  Dic-
  tator.   Government  by  a single leader enjoying the confi-
  dence of the citizens.   Law  Level:  Weapon  possession  is
  prohibited.  Technological Level: Above average Imperial.

  NOTES

  Astel Tine is the capital of Chosen Subsector,  and  is  the
  artistic  and  technological center of the Subsector.  It is
  very populated and does not sport  a  shipbuilding  facility
  (having shoved those tasks off to more remote systems closer
  to a source of raw materials), and has a lovely climate.

  The government of Astel Tine is the  Wehlmar  government,  a
  dictatorship  which enjoyed by the people and was founded in
  875.  The name of the government is  taken  from  the  first
  dictator,  Otto Wehlmahr, who with the help of an army and a
  groundswell of peasant support imposed order  and  civiliza-
  tion  on  the  overpopulous,  backward  feudal  society that
  existed before 875.

  Surprisingly the government is constitutional and the ascent
  to power is very organized, requiring consent of a citizen's








                             - 2 -



  senate to ascend above dictatorial advisor level.

  The biggest city on the planet is Port City, which obviously
  is  co-located  with  the planet's main starport.  Port City
  has approximately 10 million citizens and sports a number of
  famous  Educational  centers, most notably the Hoskins Naval
  Medical School and the Unified Academy of Languages.

  The Unified Academy of Languages on Astel Tine,  founded  in
  894, is a prestigious school in this dark frontier corner of
  the Terran Imperium.  The original school was founded  under
  Astel  Tine's  Wehlmahr  government by researchers and busi-
  nessmen who wished  to  understand  the  language  of  local
  worlds and capitalize on the marketing of technology.

  The largest market for technology were the Menion peoples in
  neighboring  Menion  Subsector, and research into the Menion
  language, history, and society served as the fulcrum to this
  school's prestige.  Smaller but very significant markets for
  technology existed on neighboring worlds, and lingo-cultural
  studies  of  these  worlds  also proved very fruitful to the
  academy.

  When the Imperial rescue of the Menion Allegiance  began  in
  997,  Astel  Tine's government was glad to join a civilizing
  force and free itself from the backwardness of the surround-
  ing worlds while maintaining its own internal structure.  As
  a result, the  government  fostered  education  of  Imperial
  diplomats,  scientists,  economists,  and  governers at this
  very Academy, thereby providing ready research and  instruc-
  tion for the new order of government in Chosen Subsector.

  The planet's huge population growth has been stopped by sen-
  ate  order,  and has actually been diminishing over the past
  30 years.  Other conservational efforts were instituted  one
  hundred  years  before that.  Nevertheless, the planet has a
  dearth of material resources and must  rely  on  imports  of
  radioactives and metals.

  One very successful business of the planet is  tourism:  the
  art  and technology, its museums and sheer Terra-like physi-
  cal beauty draw travellers from all over the Sector.

  It also houses the Terran side of the Terran-Menion Cultural
  Exchange  Center,  and  is the diplomatic center for Terran-
  Menion Relations of the entire Sector.















-------- End of TML Messages --------

